package com.fitso.model.bean.measure.mass;

import java.io.Serializable;
import java.math.BigDecimal;

import com.fitso.model.bean.measure.Measure;

/**
 * <p>
 * Base unit is gram.
 * </p>
 * 
 * @author timothystorm
 * 
 */
public abstract class Mass extends Measure implements Serializable {
	private static final long serialVersionUID = 1L;
	
	public Mass() {
		super();
	}
	
	public Mass(Integer value){
		super(value);
	}
	
	public Mass(Double value){
		super(value);
	}

	public Mass(BigDecimal value) {
		super(value);
	}

	public Mass(Mass mass) {
		convert(mass);
	}

	public Mass add(Integer mass) {
		return (Mass) super.add(mass);
	}

	public Mass add(Double mass) {
		return (Mass) super.add(mass);
	}

	public Mass add(BigDecimal mass){
		return (Mass) super.add(mass);
	}
	
	public Mass add(Mass mass) {
		return (Mass) super.add(mass);
	}
	
	public Mass convert(Mass mass) {
		return (Mass) super.convert(mass);
	}

	public Mass divide(Integer mass) {
		return (Mass) super.divide(mass);
	}

	public Mass divide(Double mass) {
		return (Mass) super.divide(mass);
	}

	public Mass divide(Mass mass) {
		return (Mass) super.divide(mass);
	}

	public Mass subtract(Integer mass) {
		return (Mass) super.subtract(mass);
	}

	public Mass subtract(Double mass) {
		return (Mass) super.subtract(mass);
	}

	public Mass subtract(Mass mass) {
		return (Mass) super.subtract(mass);
	}

	public Mass multiply(Integer mass) {
		return (Mass) super.multiply(mass);
	}

	public Mass multiply(Double mass) {
		return (Mass) super.multiply(mass);
	}

	public Mass multiply(Mass mass) {
		return (Mass) super.multiply(mass);
	}

	protected Class<Mass> getMeasure() {
		return Mass.class;
	}
	
	public Mass clone() {
		return (Mass) super.clone();
	}
}
